<item name="Remove-TenantFolder" key="remove-tenantfolder" id="{7DA8887A-88D4-4EC2-9DEE-1562257A61F4}" tid="{DD22F1B3-BD87-4DB2-9E7D-F7A496888D43}" mid="{00000000-0000-0000-0000-000000000000}" sortorder="300" language="en" version="1" template="powershell script" parentid="{13729980-F568-4F0F-9792-EBC05F97879A}" created="20170509T073226Z"><fields><field tfid="{5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}" key="__created by" type="Single-Line Text"><content>sitecore\Admin</content></field><field tfid="{BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}" key="__updated by" type="Single-Line Text"><content>sitecore\Admin</content></field><field tfid="{8CDC337E-A112-42FB-BBB4-4143751E123F}" key="__revision" type="Single-Line Text"><content>a7890e29-ab1f-4ea0-9021-353764b217d7</content></field><field tfid="{25BED78C-4957-4165-998A-CA1B52F67497}" key="__created" type="datetime"><content>20170509T073226Z</content></field><field tfid="{52807595-0F8F-4B20-8D2A-CB71D28C6103}" key="__owner" type="Single-Line Text"><content>sitecore\Admin</content></field><field tfid="{D9CF14B1-FA16-4BA6-9288-E8A174D4D522}" key="__updated" type="datetime"><content>20170514T085546Z</content></field><field tfid="{1C76313E-3C8C-4807-A826-135D10C39299}" key="showrule" type="Rules"><content /></field><field tfid="{B1A94FF0-6897-47C0-9C51-AA6ACB80B1F0}" key="script" type="Multi-Line Text"><content>function Remove-TenantFolder {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory = $true, Position = 0 )]
        [Item]$TenantFolder
    )

    begin {
        Write-Verbose "Cmdlet Remove-TenantFolder - Begin"
        Import-Function Remove-Tenant
    }

    process {
        Write-Verbose "Cmdlet Remove-TenantFolder - Process"
        Write-Progress -Status "Removing '$($TenantFolder.Name)' tenant group" -Activity "Getting all tenants" -Completed
        $tenantItemTemplateId = [Sitecore.XA.Foundation.Multisite.Templates+Tenant]::ID.ToString()
        [Sitecore.Data.Items.Item[]]$tenants = Get-ChildItem -Path $TenantFolder.Paths.Path | ? { [Sitecore.Data.Managers.TemplateManager]::GetTemplate($_).InheritsFrom($tenantItemTemplateId) }

        $tenants | Where-Object { $_ -ne $null } | ForEach-Object { Remove-Tenant $_ }

        if ($TenantFolder.Children.Count -gt 0) {
            Write-Progress -Status "Removing '$($TenantFolder.Name)' tenant group" -Activity "Getting all other groups" -Completed
            $tenantFolderTemplateId = [Sitecore.XA.Foundation.Multisite.Templates+TenantFolder]::ID.ToString()
            [Sitecore.Data.Items.Item[]]$folders = Get-ChildItem -Path $TenantFolder.Paths.Path | ? { [Sitecore.Data.Managers.TemplateManager]::GetTemplate($_).InheritsFrom($tenantFolderTemplateId) }
            $folders | ForEach-Object { Remove-TenantFolder $_ }
        }

        if ($TenantFolder.Children.Count -eq 0) {
            $oldestFolderParent = $TenantFolder
            $tenantFolderTemplateId = "{4F539F2E-9CF9-4453-8E82-3D13DED12AB3}"
            while ([Sitecore.Data.Managers.TemplateManager]::GetTemplate($oldestFolderParent).InheritsFrom($tenantFolderTemplateId)) {
                $oldestFolderParent = $oldestFolderParent.Parent
            }

            $folderTail = $TenantFolder.Paths.Path.Replace($oldestFolderParent.Paths.Path, "")

            Write-Progress -Status "Removing '$($TenantFolder.Name)' tenant group" -Activity "Removing tenant templates folder" -Completed
            $tenantTemplatesFolderPath = "/sitecore/templates/Project/$folderTail"
            if (Test-Path $tenantTemplatesFolderPath) {
                $tenantFolderTemplateFolder = Get-Item -Path $tenantTemplatesFolderPath
                if ($tenantFolderTemplateFolder.Children.Count -eq 0) {
                    $tenantFolderTemplateFolder.Recycle() | Out-Null
                }
                else {
                    Write-Error "Could not remove tenant templates folder '$($tenantTemplatesFolderPath)' as there are other folders/tenants inside"
                }
            }

            Write-Progress -Status "Removing '$($TenantFolder.Name)' tenant group" -Activity "Removing media library folder" -Completed
            $tenantMediaFolderPath = "/sitecore/media library/Project/$folderTail"
            if (Test-Path $tenantMediaFolderPath) {
                $tenantFolderMediaFolder = Get-Item -Path $tenantMediaFolderPath
                if ($tenantFolderMediaFolder.Children.Count -eq 0) {
                    $tenantFolderMediaFolder.Recycle() | Out-Null
                }
                else {
                    Write-Error "Could not remove tenant media folder '$($tenantTemplatesFolderPath)' as there are other folders/tenants inside"
                }
            }
            $TenantFolder.Recycle() | Out-Null
        }
    }

    end {
        Write-Verbose "Cmdlet Remove-TenantFolder - End"
    }
}</content></field></fields></item>